package gestion.camping.dao;

import gestion.camping.utils.MessagesUtil;
import gestion.camping.vue.ViewErreur;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * 
 *
 * @author Gombert Damien
 * @author Foucras Mélanie
 * @author Germa Romain  
 *
 * @version 1.0
 */
public abstract class GenericDAO<T> {

   
    protected Connection connect = null;
    
    /**
     * Constructeur
     * @param conn
     */
    public GenericDAO(Connection conn){
            this.connect = conn;
    }
    
    /**
     * M�thode de cr�ation
     * @param obj
     * @return
     */
    public abstract T create(T obj);
    
    /**
     * M�thode pour effacer
     * @param obj
     * @return
     */
    public abstract boolean delete(T obj);
    
    /**
     * M�thode de mise � jour
     * @param obj
     * @return
     */
    public abstract T update(T obj);
    
    /**
     * M�thode de recherche des informations
     * @param id
     * @return
     */
    public abstract T find(int id);
    
    public void gestionErreurSQL(SQLException e){
    	// TODO Auto-generated catch block
		//On récupère le numéro d'erreur
		int code = e.getErrorCode();
		// récupère le message associée
		String message = MessagesUtil.formatMessage(String.valueOf(code));
		
		//Si le message est null
		if(message == null){
			// erreur grave
			message = MessagesUtil.formatMessage("erreur.default");
		}
		//On affiche le message
		ViewErreur erreur = new ViewErreur(message);
		erreur.setVisible(true);
			
		//On trace le message dans la console
		System.err.println(e.getMessage());
    }
	
}
